using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Boa.AIT.AccesoDatos.Contratos
{
   public class DataFactory
   {
   #region Constructor
   static DataFactory instance = null;
   public static DataFactory Current
   {
   get
   {
       if (instance == null)
           instance = new DataFactory();
       return instance;
   }
   }
   public T GetInstance<T>(string className)
   {
     return Create<T>("Boa.AIT.AccesoDatos.Contexto."+className+",Boa.AIT.AccesoDatos.Contexto");
   }
   public static T Create<T>(string classFullName)
   {
       var result = (T)Didsoft.Core.Reflection.InstanciateObjectFromAssembly(classFullName);
       if (result == null)
           throw new NullReferenceException("cannot create instance of type "+classFullName);
       return result;
   }
   #endregion
   public IAIT_TipoEquipoParteAccesoDatos GetAIT_TipoEquipoParteAccesoDatos()
   {
       return this.GetInstance<IAIT_TipoEquipoParteAccesoDatos>("AIT_TipoEquipoParteAccesoDatos");
   }
   public IAIT_AlmacenEmpresaAccesoDatos GetAIT_AlmacenEmpresaAccesoDatos()
   {
       return this.GetInstance<IAIT_AlmacenEmpresaAccesoDatos>("AIT_AlmacenEmpresaAccesoDatos");
   }
   public IAIT_AsignaEmpleadoAccesoDatos GetAIT_AsignaEmpleadoAccesoDatos()
   {
       return this.GetInstance<IAIT_AsignaEmpleadoAccesoDatos>("AIT_AsignaEmpleadoAccesoDatos");
   }
   public IAIT_AsignarEquipoAlmacenAccesoDatos GetAIT_AsignarEquipoAlmacenAccesoDatos()
   {
       return this.GetInstance<IAIT_AsignarEquipoAlmacenAccesoDatos>("AIT_AsignarEquipoAlmacenAccesoDatos");
   }
   public IAIT_ConfiguracionAccesoDatos GetAIT_ConfiguracionAccesoDatos()
   {
       return this.GetInstance<IAIT_ConfiguracionAccesoDatos>("AIT_ConfiguracionAccesoDatos");
   }
   public IAIT_ConfiguracionMantenimientoAccesoDatos GetAIT_ConfiguracionMantenimientoAccesoDatos()
   {
       return this.GetInstance<IAIT_ConfiguracionMantenimientoAccesoDatos>("AIT_ConfiguracionMantenimientoAccesoDatos");
   }
   public IAIT_DocumentoEquipoAccesoDatos GetAIT_DocumentoEquipoAccesoDatos()
   {
       return this.GetInstance<IAIT_DocumentoEquipoAccesoDatos>("AIT_DocumentoEquipoAccesoDatos");
   }
   public IAIT_EquipoCompuestoAccesoDatos GetAIT_EquipoCompuestoAccesoDatos()
   {
       return this.GetInstance<IAIT_EquipoCompuestoAccesoDatos>("AIT_EquipoCompuestoAccesoDatos");
   }
   public IAIT_EquipoCompuestoPartesAccesoDatos GetAIT_EquipoCompuestoPartesAccesoDatos()
   {
       return this.GetInstance<IAIT_EquipoCompuestoPartesAccesoDatos>("AIT_EquipoCompuestoPartesAccesoDatos");
   }
   public IAIT_EquipoITAccesoDatos GetAIT_EquipoITAccesoDatos()
   {
       return this.GetInstance<IAIT_EquipoITAccesoDatos>("AIT_EquipoITAccesoDatos");
   }
   public IAIT_EquipoParteAccesoDatos GetAIT_EquipoParteAccesoDatos()
   {
       return this.GetInstance<IAIT_EquipoParteAccesoDatos>("AIT_EquipoParteAccesoDatos");
   }
   public IAIT_FotoEquipoAccesoDatos GetAIT_FotoEquipoAccesoDatos()
   {
       return this.GetInstance<IAIT_FotoEquipoAccesoDatos>("AIT_FotoEquipoAccesoDatos");
   }
   public IAIT_GarantiaAccesoDatos GetAIT_GarantiaAccesoDatos()
   {
       return this.GetInstance<IAIT_GarantiaAccesoDatos>("AIT_GarantiaAccesoDatos");
   }
   public IAIT_LoteAccesoDatos GetAIT_LoteAccesoDatos()
   {
       return this.GetInstance<IAIT_LoteAccesoDatos>("AIT_LoteAccesoDatos");
   }
   public IAIT_MarcaEquipoAccesoDatos GetAIT_MarcaEquipoAccesoDatos()
   {
       return this.GetInstance<IAIT_MarcaEquipoAccesoDatos>("AIT_MarcaEquipoAccesoDatos");
   }
   public IAIT_ModeloEquipoAccesoDatos GetAIT_ModeloEquipoAccesoDatos()
   {
       return this.GetInstance<IAIT_ModeloEquipoAccesoDatos>("AIT_ModeloEquipoAccesoDatos");
   }
   public IAIT_ProveedorAccesoDatos GetAIT_ProveedorAccesoDatos()
   {
       return this.GetInstance<IAIT_ProveedorAccesoDatos>("AIT_ProveedorAccesoDatos");
   }
   public IAIT_RegionAccesoDatos GetAIT_RegionAccesoDatos()
   {
       return this.GetInstance<IAIT_RegionAccesoDatos>("AIT_RegionAccesoDatos");
   }
   public IAIT_SolicitudEquipoAccesoDatos GetAIT_SolicitudEquipoAccesoDatos()
   {
       return this.GetInstance<IAIT_SolicitudEquipoAccesoDatos>("AIT_SolicitudEquipoAccesoDatos");
   }
   public IAIT_TallerProveedorAccesoDatos GetAIT_TallerProveedorAccesoDatos()
   {
       return this.GetInstance<IAIT_TallerProveedorAccesoDatos>("AIT_TallerProveedorAccesoDatos");
   }
   public IAIT_TipoConfiguracionAccesoDatos GetAIT_TipoConfiguracionAccesoDatos()
   {
       return this.GetInstance<IAIT_TipoConfiguracionAccesoDatos>("AIT_TipoConfiguracionAccesoDatos");
   }
   public IAIT_TipoEquipoAccesoDatos GetAIT_TipoEquipoAccesoDatos()
   {
       return this.GetInstance<IAIT_TipoEquipoAccesoDatos>("AIT_TipoEquipoAccesoDatos");
   }


   public IDtoBOAPersonal GetBOAPersonalAccesoDatos()
   {
       return this.GetInstance<IDtoBOAPersonal>("BOAPersonalAccesoDatos");
   }

   }
}

